#include"Task.hpp"//任务
#include"ThreadPool.hpp"//线程池
#include<memory>
#include<time.h>

int main()
{
    srand(time(nullptr)^getpid());
    EnableConsoleLogSrategy();

    // std::unique_ptr< ThreadPool<Task> > tp=std::make_unique<  ThreadPool<Task>  >(5);//make_unique是C++14标准，所以得带编译选项

    // tp->Start();
    int cnt=10;
    while(cnt--)
    {
        //生产任务
        int x=rand()%10+1;
        usleep(rand()%55);
        int y=rand()%5+1;
        //注意这个是有名字的，是个局部对象，而不是临时对象
        Task t(x,y);

        //push到线程池中处理
        ThreadPool<Task>::GetInstance()->Enqueue(t);

        sleep(1);
    }


    ThreadPool<Task>::GetInstance()->Stop();
    ThreadPool<Task>::GetInstance()->Wait();
    //tp->Enqueue();

}